package Models;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.List;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.cookie.Cookie;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.protocol.HTTP;
import org.apache.http.util.EntityUtils;

public class HTTPUtil {

    HttpResponse response;
    HttpEntity entity;
    List<Cookie> cookies;
    //Aqui almacenaremos el html devuelto por la peticion
    String line = "";

    public HTTPUtil() {
    }

    public String GetResponseFromHTTPPost(DefaultHttpClient httpclient, String url, List<NameValuePair> parametrosPeticion, String usuario, String password) throws UnsupportedEncodingException, IOException {

        //Creamos una instancia de HTTP Post a la cual en su constructor especificamos a donde realizaremos la  peticion
        HttpPost httpost = new HttpPost(url);
        // Parametros a enviar en la peticion

       

        httpost.setEntity(new UrlEncodedFormEntity(parametrosPeticion, HTTP.UTF_8));
        response = httpclient.execute(httpost);
        entity = response.getEntity();
        System.out.println("Login form get: " + response.getStatusLine());
            
        // Mostramos las cookies
        System.out.println("Post logon cookies:");
        cookies = httpclient.getCookieStore().getCookies();
        if (cookies.isEmpty()) {
            System.out.println("None");
        } else {
            for (int i = 0; i < cookies.size(); i++) {
                System.out.println("- " + cookies.get(i).toString());
            }
        }

        //En esta parte vamos a jugar con el string devuelto por la respuesta http
        BufferedReader br = null;
        StringBuilder sb = new StringBuilder();

        try {
            br = new BufferedReader(new InputStreamReader(entity.getContent()));
            while ((line = br.readLine()) != null) {
                sb.append(line);
                System.out.println(line);
            }
        //obtenemos las carreras disponibles y seleccionamos una
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (br != null) {
                try {
                    br.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
        return "";
    }
}
